//
//  prefixmap.h
//  cobalt
//
//  Created by Nicolas Godbout on 2013-08-30.
//  Copyright (c) 2013 Nicolas Godbout. All rights reserved.
//

#ifndef __cobalt__prefixmap__
#define __cobalt__prefixmap__

#include <string>

class PrefixMap {
    virtual std::string const&
    get(std::string const& prefix) const = 0;
    
    virtual void
    set(std::string const& prefix, std::string const& iri) = 0;
    
    virtual void
    remove(std::string const& prefix) = 0;
    
    virtual std::string
    resolve(std::string const& curie) const = 0;
    
    virtual std::string
    shrink(std::string const& iri) const = 0;
    
    virtual void
    setDefault(std::string const& iri) = 0;
    
    virtual PrefixMap&
    addAll(PrefixMap const& prefixes, bool override = false) = 0;
};




#endif /* defined(__cobalt__prefixmap__) */
